<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 1、js一共有多少种数据类型?
      // 答: Number String Boolean Undifined Null Symbol  Object
      // 2、js检测数据类型有哪些方法?
      // 答: 1. typeof() 2.Object.prototype.toString.call()  3.instanceof()
      // 3、undefined和null的区别?	用typeof检测它们分别返回什么值?
      // 答: 1. undefined应该有值但未定义, null有一个空值, 值为null
      //     2. 用typeof检测后undefined返回undefined, null返回的是object
      // 4、写出下列对应结果
      var str = "0";
      var str1 = "";
      var str2 = " ";
      var unde = undefined;
      var nu = null;
      var num = 0;
      var num1 = -10;

      Boolean(str); // true
      Boolean(str1); // false
      Boolean(str2); // true
      Boolean(unde); // false
      Boolean(nu); // false
      Boolean(num); // false
      Boolean(num1); // true

      // 5、写出下列对应结果	注意：需要分别使用Number、String、toString去转换数据类型
      var str = "0"; // 0 0 0
      var num = -10; // -10 -10 -10
      var flag = true; // 1 true true
      var ud = undefined; // NAN undefined 报错
      var nu = null; // 0 null 报错

      // 6、检测下面的变量各自的数据类型
      var str = "";
      console.log(typeof str); // String

      var num = "-10";
      console.log(typeof num); // String

      var num1 = 0;
      console.log(typeof num1); // Number

      var nu = undefined;
      console.log(typeof nu); // undefined

      var nud1 = "undefined";
      console.log(typeof nud1); // String

      var nu1 = "null";
      console.log(typeof nu1); // string

      var nu2 = null;
      console.log(Object.prototype.toString.call(nu2)); // [object Null]
    </script>
  </body>
</html>
